When data is to be transferred between two devices over a data channel, each of the devices must have a suitable network interface to allow it to communicate across the channel. The devices and their network interfaces use a protocol to form the data that is transmitted over the channel, so that it can be decoded by a receiver. The data channel may be considered to form part of a network, and additional devices may be connected to the network.
Data may be received at a device on a network at a network interface. The network interface is capable of supporting the physical and logic requirements of the network protocol, for example Ethernet. The physical hardware components of the network interfaces are referred to network interface cards (NICs) although they need not be in the form of cards. For example, they could be in the form of integrated circuits (ICs) and connectors fitted directly onto a motherboard.
The communication of an application of a device over a network may be facilitated through the use of sockets. A socket may form an end-point for a communication over a network. The management of the sockets, for example determining whether a socket is ready to be processed by an application, may be carried out by the application making system calls to the operating system of the device. The system call may indicate a file descriptor associated with a socket.
System calls to determine whether one or more sockets are ready for processing may return an indication of the sockets that can be processed. The present application aims to allow an application to ascertain an order in which the sockets should be processed in addition to which sockets are ready to be processed.